package day7;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

//a. 实现斗地主随机发牌的功能 一共54张牌
//   牌的花色分为   梅花   红桃   黑桃  方片
//   牌有  3  4 5 6 7 8 9 10 J  Q K  A  2  大王 小王
//   随机发给两个农民 和一个地主      地主 多三张牌
//   最后显示每人的牌的结果
//b.继续完成斗地主的题目  给俩个农民和
// 一个地主的牌 进行降序排列
public class Work3 {
    public static void main(String[] args) {
        //1.保存所有牌
        List<Card> list=new ArrayList<>();
        String[] color={"♣","♦","♠","♥"};
        String[] num={"3","4","5","6","7","8","9"
                ,"10","J","Q","K","A","2"};
        for(String c:color){
            for(int i=0;i<num.length;i++){
                //c+num[i] 排序字段i
                list.add(new Card(c+num[i],i+1));
            }
        }
        list.add(new Card("🃏",num.length+1));
        list.add(new Card("\033[31m🃏\033[0m",num.length+2));
        System.out.println("======存储牌成功:======");
        System.out.println(list);
        //2.洗牌 打乱  集合工具类自带
        System.out.println("======开始洗牌=========");
        Collections.shuffle(list);
        System.out.println("洗牌后:"+list);
        //3.按顺序发牌 每次发第一张(发一张少一张)
        List<Card> farmer1=new ArrayList<>();
        List<Card> farmer2=new ArrayList<>();
        List<Card> dizhu=new ArrayList<>();
        while(true){
//            Card c=list.get(0);
//            farmer1.add(c);
//            list.remove(0);
            farmer1.add(list.remove(0));
            farmer2.add(list.remove(0));
            dizhu.add(list.remove(0));
            if(list.size()==3) break;
        }
        for(Card c:list){
            dizhu.add(c);
        }
        //4.打印结果
        System.out.println("====发牌后:====");
        System.out.println(farmer1);
        System.out.println(farmer2);
        System.out.println(dizhu);
        //5.排序
        Collections.sort(farmer1,(o1,o2)->o2.sort-o1.sort);
        Collections.sort(farmer2,(o1,o2)->o2.sort-o1.sort);
        Collections.sort(dizhu,(o1,o2)->o2.sort-o1.sort);
        //6.再打印结果
        System.out.println("======排序后=======");
        System.out.println(farmer1);
        System.out.println(farmer2);
        System.out.println(dizhu);
    }
}
class Card{  //牌类
    String str;//梅花3  方片4...
    int sort;//排序3  J 11 Q12 K 13 A 14 2 15  16 17
    public Card(String str, int sort) {
        this.str = str;
        this.sort = sort;
    }
    //打印对象不是地址了 而是下面的字符串
    public String toString() {
        return str;
    }
}